/**
 * @name session-storage 封装
 * @author Conan
 * @versions 1.0
 */

class SStorage {
  constructor() {
    const ss = window.sessionStorage
  }

  /**
   * 保存数据
   * @param {*} key 
   * @param {*} value 
   */
  setStorage(key, value) {
    let v = value
    if (typeof v === 'object') {
      v = JSON.stringify(v)
      v = 'obj-' + v
    } else {
      v = 'str-' + v
    }
    if (this.ss) {
      this.ss.setItem(key, v)
    }
  }

  /**
   * 获取缓存数据
   * @param {*} key 
   * @returns 
   */
  getStorage(key) {
    if (this.ss) {
      let v = this.ss.getItem(key)
      if (!v) {
        return false
      }
      if (v.indexOf('obj-') === 0) {
        v = v.slice(4)
        return JSON.parse(v)
      } else if (v.indexOf('str-') === 0) {
        return v.slice(4)
      }
    }
  }

  /**
   * 移除缓存数据
   * @param {*} key 
   */
  removeStorage(key) {
    if (!key) return false
    this.ss.removeItem(key)
  }

  /**
   * 移除所有缓存
   */
  clearStorage() {
    this.ss.clear();
  }
}